Designing A Cluster-Aware Application